package br.com.skpharma.dao;

import java.util.ArrayList;

import br.com.skpharma.db.DB;
import br.com.skpharma.vo.MarcaVO;
import br.com.skpharma.vo.ModeloVO;





public class DAOModelo {
	private DB db = new DB("jdbc:postgresql://localhost:5432/skpharma","postgres","postgres");
	private ModeloVO modelo;

	public DAOModelo(){
		modelo = new ModeloVO();
	}
	
	public void setCliente(ModeloVO nModeloVO){
		modelo = nModeloVO;
	}

	public ModeloVO getModeloVO(){
		return(modelo);
	}

	public void salvar(){

		if(db.connect()){			
			
			db.update("insert into modelo (ds_modelo, cd_marca) values ('"+ 
				 	modelo.getDs()+ "','" + modelo.getMarcaVO().getCod() + "')");
			db.disconnect();
		}		
	}

	public void excluir(){
		if(db.connect()){
			db.update("delete from modelo where cd_modelo = " + modelo.getCod() );			
			db.disconnect();
		}		
	}
	
	public void editar(){		
		if(db.connect()){
			System.out.println("update modelo set ds_modelo='"+ modelo.getDs() +"'," +
					"cd_marca='"+ modelo.getMarcaVO().getCod() +"'," +
					"'where cd_modelo= " + modelo.getCod());
			db.update("update modelo set ds_modelo='"+ modelo.getDs() +"'," +
					"cd_marca='"+ modelo.getMarcaVO().getCod() +
					"'where cd_modelo= " + modelo.getCod());			
			db.disconnect();
		}		
	}

	
	
	public ArrayList obterLista(){
		ArrayList lista = new ArrayList();
		ModeloVO modeloVO;
		DAOMarca daoMarca;
		if(db.connect()){
			db.select("select modelo.* ,marca.ds_marca as ds_marca from modelo,marca where modelo.cd_marca = marca.cd_marca order by ds_modelo");
			while(db.moveNext()){
				daoMarca = new DAOMarca();
				daoMarca.obter(db.getInt("cd_marca"));
				modeloVO = new ModeloVO( db.getInt("cd_modelo"),  db.getString("ds_modelo"), new MarcaVO(db.getInt("cd_marca"),db.getString("ds_marca")));
				lista.add(modeloVO);
			}
			db.disconnect();
		}		
		return lista;
	}	
	

	public void obter(int codigo){		
		if(db.connect()){
			db.select("select modelo.* ,marca.ds_marca as ds_marca from modelo,marca where modelo.cd_marca = marca.cd_marca and cd_modelo =" + codigo);
			if(db.moveNext()){				
				modelo.setCod(db.getInt("cd_modelo"));
				modelo.setDs(db.getString("ds_modelo"));
				DAOMarca daoMarca = new DAOMarca();
				daoMarca.obter(db.getInt("cd_marca"));
				modelo.setMarcaVO(daoMarca.getMarcaVO());		
		}
			
			db.disconnect();
		}		
	}
}

